#include <tchar.h>
#include <vector>

using namespace std;

typedef void (*callback_func)(TCHAR*, vector<TCHAR*>*);

namespace Android{
	struct CALLBACK_STRUCT{
		callback_func pfunc;
		vector<TCHAR*> *storage;
	};
	vector<TCHAR*>* getDeviceList();
	bool execute(TCHAR* proc_name, TCHAR* cmdline, CALLBACK_STRUCT *callback);
};

class AndroidDevice{
public:
	AndroidDevice(TCHAR* device_name);
	bool hasSyncFolder(){return syncFolder;};
	bool hasPlayListFolder(){return playlistFolder;};
	bool hasMP3Folder(){return mp3Folder;};
	bool hasFile(TCHAR* filename);
	void checkFolders();
	void syncFile(TCHAR* filename);
	void removeFile(TCHAR* filename);
	void removeFolder(TCHAR* foldername);
	void renameFile(TCHAR* o_filename, TCHAR* n_filename);
	void getFileList(TCHAR* foldername);
private:
	bool syncFolder;
	bool playlistFolder;
	bool mp3Folder;
	bool useDefault;
	TCHAR* defaultMP3Folder;
	TCHAR* defaultPlayListFolder;
	TCHAR* defaultSyncFolder;
	TCHAR* device_enum_name;
	vector<TCHAR*> vecMp3;
	vector<TCHAR*> vecPlaylist;	
};